home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 February / CHIPCD_02_2002.iso / Internet / Macromedia ColdFusion Server 5 / coldfusion-50-win-us.exe / data1.cab / Program_Files / BIN / parser_data.xml < prev    next >
Encoding:
Text File  |  2001-06-13  |  5.7 KB  |  163 lines

  1. <!--
  2.  
  3.     Cold Fusion Markup Language Initialization File
  4.  
  5.     $Header:$
  6.  
  7.  
  8.  
  9.     META-DATA
  10.  
  11.     The comments in this file contain some meta-data that can be useful in 
  12.     the task of keeping the file synchronized with changes in the objects
  13.     it relates to. Generally, "@@" is used to prefix a meta-data element.
  14.  
  15.     The following meta-data elements are defined:
  16.  
  17.     @@ACTION
  18.     - denotes an action that needs to be performed
  19.  
  20.     @@SYNC(object)
  21.     - denotes that the element after the comment needs to be synchronized 
  22.       with the specified object. Example: "@@ACTION @@SYNC(cfml.ycc)".
  23.  
  24. -->
  25.  
  26.  
  27. <CFMLParserDataDefinition>
  28.  
  29.     <Yacc>
  30.  
  31.         <YaccTableId>IDR_PARSER_YACC_TABLE</YaccTableId>
  32.  
  33.     </Yacc>
  34.  
  35.     <Lex>
  36.         
  37.         <!--
  38.             @@ACTION @@SYNC(cfml.ycc)
  39.  
  40.             This is the map of lexer expression lists (lexical analyzers)
  41.             to their numbers as defined in the cfmlcon.h file. This section
  42.             needs to be synchronized with changes to the cfml.ycc file.
  43.         -->
  44.         <LexExpressionLists><Map>
  45.             <MapItem><Key>HTMLText</Key>          <Value>0</Value></MapItem>
  46.             <MapItem><Key>DynamicText</Key>       <Value>1</Value></MapItem>
  47.             <MapItem><Key>CFMLComment</Key>       <Value>2</Value></MapItem>
  48.             <MapItem><Key>ASPCodeInTag</Key>      <Value>3</Value></MapItem>
  49.             <MapItem><Key>AVList</Key>            <Value>4</Value></MapItem>
  50.             <MapItem><Key>AttribValue</Key>       <Value>5</Value></MapItem>
  51.             <MapItem><Key>CFScriptLex</Key>       <Value>6</Value></MapItem>
  52.             <MapItem><Key>DoubleQuotedString</Key><Value>7</Value></MapItem>
  53.             <MapItem><Key>SingleQuotedString</Key><Value>8</Value></MapItem>
  54.             <MapItem><Key>CComment</Key>          <Value>9</Value></MapItem>
  55.             <MapItem><Key>CPlusComment</Key>      <Value>10</Value></MapItem>
  56.         </Map></LexExpressionLists>
  57.  
  58.         <!--
  59.             This is the map of lexer actions. It is included for readability.
  60.         -->
  61.         <LexActions><Map>
  62.             <MapItem><Key>Noop</Key><Value>0</Value></MapItem>
  63.             <MapItem><Key>Push</Key><Value>1</Value></MapItem>
  64.             <MapItem><Key>Pop</Key>    <Value>2</Value></MapItem>
  65.             <MapItem><Key>Goto</Key><Value>4</Value></MapItem>
  66.         </Map></LexActions>
  67.  
  68.         <!-- 
  69.             Dynamic shifting of lex contexts
  70.  
  71.             The following are descriptions of lexer actions taken at different
  72.             points in the recognition of CF tags.
  73.             The operations are invoked in the lexer's complete() function when a token
  74.             is recognized.  Doing the pushing/popping there allows more checking of
  75.             proper tag nesting than doing it via %push/%pop in the grammar description
  76.             file.
  77.         -->
  78.         <!--
  79.             Dynamic shifting of lex contexts for tag insides
  80.  
  81.             This is the data structure that identifies the processing of the
  82.             insides of tags (between < and >). The items consist of regular expressions
  83.             that choose a tag name, lex operations that need to be performed for that tag,
  84.             and the lex expression lists that the operations work on. For operations
  85.             that do not require any expression lists the value is ignored.
  86.         -->
  87.         <TagInsides><Collection>
  88.             <!-- Tags that contain expressions  -->
  89.             <Item>
  90.                 <RE>(([Cc][Ff])|([Dd][Bb]))(([Ss][Ee][Tt])|([Ii][Ff])|([Ee][Ll][Ss][Ee][Ii][Ff]))</RE>
  91.                 <LexOperation>Push</LexOperation>
  92.                 <LexExpression>CFScriptLex</LexExpression>
  93.             </Item>
  94.             <!-- All other tags -->
  95.             <Item>
  96.                 <RE>(([Cc][Ff])|([Dd][Bb])).*</RE>
  97.                 <LexOperation>Push</LexOperation>
  98.                 <LexExpression>AVList</LexExpression>
  99.             </Item>
  100.         </Collection></TagInsides>
  101.  
  102.         <!--
  103.             Dynamic shifting of lex contexts after tag ends (>)
  104.  
  105.             This is the data structure that identifies the processing when a
  106.             beginning or ending tag is closed. The items consist of regular expressions that
  107.             choose the tag name ("/" used to distinguish begin/end tags), lex operations that
  108.             need to be performed, and the lex expression lists that the operations work on. 
  109.             For operations that do not require any expression lists (only NOOP?) the value is ignored.
  110.         -->
  111.         <AfterTags><Collection>
  112.             <!-- Begin tags that push dynamic text contexts -->
  113.             <!-- 
  114.                 Note: CFQUERY is a special case when it has the SQL= attribute.
  115.                       This is handled internally (the context is switched to HTMLText)
  116.             -->
  117.             <Item>
  118.                 <RE>(([Cc][Ff])|([Dd][Bb]))(([Mm][Aa][Ii][Ll])|([Oo][Uu][Tt][Pp][Uu][Tt])|([Qq][Uu][Ee][Rr][Yy])|([Rr][Ee][Pp][Oo][Rr][Tt]))</RE>
  119.                 <LexOperation>Push</LexOperation>
  120.                 <LexExpression>DynamicText</LexExpression>
  121.             </Item>
  122.             <!-- Begin tags that push script/expression lexers -->
  123.             <!-- CFSCRIPT -->
  124.             <Item>
  125.                 <RE>([Cc][Ff])([Ss][Cc][Rr][Ii][Pp][Tt])</RE>
  126.                 <LexOperation>Push</LexOperation>
  127.                 <LexExpression>CFScriptLex</LexExpression>
  128.             </Item>
  129.  
  130.             <!-- End tags that pop dynamic text contexts -->
  131.             <Item>
  132.                 <RE>/(([Cc][Ff])|([Dd][Bb]))(([Mm][Aa][Ii][Ll])|([Oo][Uu][Tt][Pp][Uu][Tt])|([Qq][Uu][Ee][Rr][Yy])|([Rr][Ee][Pp][Oo][Rr][Tt]))</RE>
  133.                 <LexOperation>Pop</LexOperation>
  134.                 <LexExpression>DynamicText</LexExpression>
  135.             </Item>
  136.             <!-- End tags that pop script/expression lexers -->
  137.             <!-- CFSCRIPT -->
  138.             <Item>
  139.                 <RE>/([Cc][Ff])([Ss][Cc][Rr][Ii][Pp][Tt])</RE>
  140.                 <LexOperation>Pop</LexOperation>
  141.                 <LexExpression>CFScriptLex</LexExpression>
  142.             </Item>
  143.             <!-- All other tags -->
  144.             <Item>
  145.                 <RE>/?(([Cc][Ff])|([Dd][Bb])).*</RE>
  146.                 <LexOperation>Noop</LexOperation>
  147.                 <LexExpression>HTMLText</LexExpression><!-- Ignored -->
  148.             </Item>
  149.         </Collection></AfterTags>
  150.  
  151.         <!-- Allowed characters in Cold Fusion tag names (a regular expression) -->
  152.         <AllowedCharactersInTagNames>[A-Za-z0-9_]+</AllowedCharactersInTagNames>
  153.  
  154.         <LexTableId>IDR_PARSER_LEX_TABLE</LexTableId>
  155.  
  156.         <!-- Default initial lex expression -->
  157.         <InitialLexExpression>HTMLText</InitialLexExpression>
  158.  
  159.     </Lex>
  160.  
  161. </CFMLParserDataDefinition>
  162.  
  163.